Executing sc-cite-original performs the following
steps as it initializes the reply buffer:
sc-pre-hook. This hook variable is run
before sc-cite-original does any other work. You
could conceivably use this hook to set certain Supercite
variables based on the reply buffer's mode or name (i.e., to do
something different based on whether you are replying or
following up to an article).You can control what key Supercite uses as its keymap
prefix by changing the variable
sc-mode-map-prefix. By default, this variable is
set to C-c C-p; a finger twister perhaps, but
unfortunately the best default due to the scarcity of
available key bindings in many MUAs.
sc-mail-warn-if-non-rfc822-p is
non-nil, then Supercite will warn you if it
finds a mail header that does not conform to RFC822. This is
rare and indicates a problem either with your MUA or the
original author's MUA, or some MTA (mail transport agent)
along the way.
Once the info keys have been extracted from the mail headers, the headers are nuked from the reply buffer. You can control exactly which headers are removed or kept, but by default, all headers are removed.
There are two variables which control mail header nuking.
The variable sc-nuke-mail-headers controls the
overall behavior of the header nuking routines. By setting
this variable to 'all, you automatically nuke
all mail headers. Likewise, setting this variable to
'none inhibits nuking of any mail headers. In
between these extremes, you can tell Supercite to nuke only a
specified list of mail headers by setting this variable to
'specified, or to keep only a specified list of
headers by setting it to 'keep.
If sc-nuke-mail-headers is set to
'specified or 'keep, then the
variable sc-nuke-mail-header-list is consulted
for the list of headers to nuke or keep. This variable
contains a list of regular expressions. If the mail header
line matches a regular expression in this list, the header
will be nuked or kept. The line is matched against the regexp
using looking-at rooted at the beginning of the
line.
If
the variable sc-blank-lines-after-headers is
non-nil, it contains the number of blank lines
remaining in the buffer after mail headers are nuked. By
default, only one blank line is left in the buffer.
sc-cite-region-limit. If this variable contains
an integer, messages with more lines that this will not be
cited at all, and a warning message will be displayed.
Supercite has performed everything necessary, though, for you
to manually cite only the small portion of the original
message that you want to use.
If sc-cite-region-limit contains a
non-nil value, the original message will always
be cited, regardless of its size. If the variable contains
the value nil, the region will never be cited
automatically. Use this if you always want to be able to edit
and cite the message manually.
The
variable sc-cite-blank-lines-p controls whether
blank lines in the original message should be cited or not.
If this variable is non-nil, blank lines will be
cited just like non-blank lines. Otherwise, blank lines will
be treated as paragraph separators.
Citing of the original message is highly configurable. Supercite's default setup does a pretty good job of citing many common forms of previously cited messages. But there are as many citation styles out there as people on the net, or just about! It would be impossible for Supercite to anticipate every style in existence, and you probably wouldn't encounter them all anyway. But you can configure Supercite to recognize those styles you see often. See Configuring the Citation Engine, for details.
sc-post-hook. This variable
is very similar to sc-pre-hook, except that it
runs after sc-cite-original is finished. This hook
is provided mostly for completeness and backward compatibility.
Perhaps it could be used to reset certain variables set in
sc-pre-hook.